過去四天裡,像是在打造一條數位工廠的生產線:設定廠房(Day2)、建立原料篩選機制(Day3),到引進核心的 AI加工技術(Day4)。
現在,來到我們的生產線末端,已經源源不斷地產出經過LLM精煉的結構化資料——包含摘要和標籤,而這些東西還靜靜地躺在工廠的傳送帶上,Flutter App(客戶端)還不知道如何來取貨。(原諒我需要一些開場白等的廢話xDD)
今天,我們就要完成這「最後一哩路」的建設:為工廠開設一個提貨窗口,也就是一個Webhook API。這個API 將是連接我們後端與未來漂亮App之間的唯一橋樑。
步驟一:數據的最終整備 —— 用Set節點打造乾淨的API回應
回顧我們的工作流,中間過程產生了許多臨時數據:原始HTML、清理後的純文字、RSS Feed 的所有欄位等等,如果我們把這些東西一股腦地全部回傳給App,不僅會造成數據冗餘,也會增加App端的處理負擔。
好的API,只需回傳客戶端真正需要的、乾淨的數據。這時Set節點就是我們最好的包裝工具。
步驟二:從「定時任務」到「即時回應」—— Webhook節點登場
到目前為止,我們的工作流是定時(Cron)節點或手動觸發的,但App需要的是一種「我來要,你就給」的即時互動模式,這也是Webhook節點的核心使命。
所以先將最一開始的trigger節點換成Webhook節點,將Path命名,換個有意義的名字(我設定為:get-inspirations)。
Webhook節點會產生一個獨一無二的URL。當有程式(如我們的App或你的瀏覽器)在任何時候訪問這個URL,整個n8n工作流就會被觸發且執行,並將最後一個節點的結果回傳給訪問者。
(1)Test測試用:(只在你按下Execute workflow後,再被呼叫有效)
https://<你的主機>/webhook-test/get-inspirations
(2)Produciton正式用:(把workflow切成Active後,隨時可打)
https://<你的主機>/webhook/get-inspirations
步驟三:驗收成果 —— 用Postman測試你的第一個API
Postman是一個App模擬工具,可以對前面的工作流進行呼叫測試,確保它能如預期般回傳我們精心準備的JSON數據。雖然可以直接用瀏覽器,但使用專業的API測試工具Postman能讓我們看到更完整的資訊。
先將n8n進入監聽狀態,在Webhook節點的視窗中,點擊右下角的Listen for Test Event按鈕,n8n會開始等待,準備接收來自測試URL的請求。
使用瀏覽器或Postman發出請求,我將使用Test URL進行測試。將請求方法設為 GET,在Postman貼上複製的Test URL後並發出請求。
在n8n這端:會看到 Webhook 節點出現了一個綠色的勾,表示它已成功接收到請求。你可以點開節點,查看請求的詳細資訊~整個工作流會被觸發到執行完成。
在Postman這端:請求完成後,下方的Body區塊會顯示從n8n回傳的結果。如果一切正常,這裡顯示的就應該是我們在Set節點中打包設定好的JSON數據,同時,狀態碼應該是200OK,這樣就算接成功啦!
今天完成了後端建設的最後一塊,不建立了一個自動化流程,更是看到了成果,透過一個標準、穩定的Webhook API暴露給了外部世界。我們的數位工廠,算是上工了!我後面會再慢慢的,邊優化細節邊回來改前面的文章。
明天開始要使用Flutter,建立其專案初始化與架構規劃~Day6 見!
【哈囉你好:)感謝你的閱讀!其他我會常出沒的地方:Threads】